/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * 
 * 
 *
 * 
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using System;
using System.Collections.Generic;
using System.Text;


namespace JDCloudSDK.Vm.Model
{

    /// <summary>
    ///  实例模板详细配置。
    /// </summary>
    public class InstanceTemplateData
    {

        ///<summary>
        /// 实例规格。
        ///</summary>
        public string InstanceType{ get; set; }
        ///<summary>
        /// 主网卡所属VPC的ID。
        ///</summary>
        public string VpcId{ get; set; }
        ///<summary>
        /// 云主机使用的镜像ID。
        ///</summary>
        public string ImageId{ get; set; }
        ///<summary>
        /// 实例模板中是否包含自定义密码。&#x60;true&#x60;：包含自定义密码，&#x60;false&#x60;：不包含自定义密码。
        ///</summary>
        public bool IncludePassword{ get; set; }
        ///<summary>
        /// 系统盘配置。
        ///</summary>
        public InstanceTemplateDiskAttachment SystemDisk{ get; set; }
        ///<summary>
        /// 数据盘配置列表。
        ///</summary>
        public List<InstanceTemplateDiskAttachment> DataDisks{ get; set; }
        ///<summary>
        /// 主网卡配置。
        ///</summary>
        public InstanceTemplateNetworkInterfaceAttachment PrimaryNetworkInterface{ get; set; }
        ///<summary>
        /// 主网卡主IP关联的弹性公网IP配置。
        ///</summary>
        public InstanceTemplateElasticIp ElasticIp{ get; set; }
        ///<summary>
        /// 云主机使用的密钥对名称。
        ///</summary>
        public List<string> KeyNames{ get; set; }
        ///<summary>
        /// 停机不计费模式。该参数仅对按配置计费且系统盘为云硬盘的实例生效，并且不是专有宿主机中的实例。
        /// &#x60;keepCharging&#x60;：关机后继续计费。
        /// &#x60;stopCharging&#x60;：关机后停止计费。
        /// 
        ///</summary>
        public string ChargeOnStopped{ get; set; }
        ///<summary>
        /// 自动任务策略ID。
        ///</summary>
        public string AutoImagePolicyId{ get; set; }
        ///<summary>
        /// 允许SSH密码登录。
        /// &#x60;yes&#x60;：允许SSH密码登录。
        /// &#x60;no&#x60;：禁止SSH密码登录。
        /// 仅在指定密钥时此参数有效，指定此参数后密码即使输入也将被忽略，同时会在系统内禁用SSH密码登录。
        /// 
        ///</summary>
        public string PasswordAuth{ get; set; }
        ///<summary>
        /// 使用镜像中的登录凭证，无须再指定密码或密钥（指定无效）。
        /// &#x60;yes&#x60;：使用镜像登录凭证。
        /// &#x60;no&#x60;：不使用镜像登录凭证。
        /// 仅使用私有或共享镜像时此参数有效。
        ///</summary>
        public string ImageInherit{ get; set; }
    }
}
